let currentDeleteButton = null;


function showDeleteConfirmModal(button) {
    // 直接从按钮获取 data-id 并保存到模态框的数据集中
    var courseId = button.getAttribute('data-id');
    document.getElementById('deleteConfirmModal').dataset.id = courseId;
    document.getElementById('deleteConfirmModal').style.display = 'block';
}

// 关闭删除确认弹窗
function closeDeleteConfirmModal() {
    document.getElementById('deleteConfirmModal').style.display = 'none';
    // 清除模态框中保存的 courseID
    document.getElementById('deleteConfirmModal').dataset.courseId = '';
}


// 为所有删除按钮添加点击事件（如果有动态加载的行）
function addDeleteEventListeners() {
    document.querySelectorAll('.btn.btn-danger').forEach(button => {
        button.addEventListener('click', function(e) {
            e.preventDefault();
            showDeleteConfirmModal(this);
        });
    });
}

function confirmDelete() {
    // 从弹窗的数据集中获取之前保存的 courseID
    var courseId = document.getElementById('deleteConfirmModal').dataset.id;
    alert(courseId)
    if (!courseId) {
        alert('无法确定要删除的课程，请刷新页面重试！');
        return;
    }

    document.getElementById(courseId).remove();

    // 发送 DELETE 请求到服务器以删除该课程
    fetch(`/admin/users/deleteByName?name=${encodeURIComponent(courseId)}`, {
        method: 'DELETE',
        headers: {
            'Content-Type': 'application/json'
        }
    })
        .then(response => response.json())
        .then(data => {
            if (data.success) {
                // 如果删除成功，则移除页面上的相关元素
                document.getElementById('course-' + courseId).remove();
                alert('课程已成功删除！');
            } else {
                alert('删除失败：' + data.message);
            }
        })
        .catch((error) => {
            console.error('Error:', error);
            alert('发生错误，请查看控制台日志！');
        });

}

// 页面加载完成后初始化
window.onload = function() {
    initializeAddStudentModal();
    addDeleteEventListeners();
};

// 页面加载时初始化
document.addEventListener('DOMContentLoaded', () => {


    // 获取模态对话框元素
    const addStudentModal = document.getElementById('addStudentModal');
    const studentForm = document.getElementById('studentForm');

    // 打开模态对话框函数
    window.openAddStudentModal = () => {
        addStudentModal.style.display = 'block';
    };

    // 关闭模态对话框函数
    window.closeAddStudentModal = () => {
        addStudentModal.style.display = 'none';
        studentForm.reset();
    };


    });

// 添加以下代码块以实现数据读取和表格渲染

// 等待 DOM 加载完成后再执行脚本
document.addEventListener("DOMContentLoaded", function () {
    // 获取表格的 tbody 元素
    const tableBody = document.querySelector(".table");

    // 向后端发起 GET 请求
    fetch("http://localhost:8080/admin/users/student") // 替换为实际的学生数据接口路径
        .then(response => response.json()) // 解析响应为 JSON
        .then(data => {
            // 遍历返回的 JSON 数据
            data.data.forEach(user => {
                // 创建一个新的 tr 元素
                const row = document.createElement("tr");
                row.id = user.id;
                // 插入学生信息到表格行中，并添加删除按钮
                row.innerHTML = `
                    <td>${user.sno}</td>
                    <td>${user.sname}</td> <!-- 注意：密码字段通常不会直接显示在页面上 -->
                    <td>${user.gender}</td>
                    <td>${user.classId}</td>
                    <td><button class="btn btn-danger" data-id="${user.Sname}" onclick="showDeleteConfirmModal(this)">🗑 删除</button></td>
                `;

                // 将行添加到表格中
                tableBody.appendChild(row);
            });
        })

        .catch(error => {
            console.error("获取学生数据时出错:", error);
        });
});


// 处理新增课程表单提交
document.getElementById('studentForm').addEventListener('submit', function(e) {
    e.preventDefault();

    // 获取表单数据
    const formData = new FormData(this);
    const userdata = Object.fromEntries(formData);
    userdata.role = "student";
    closeAddStudentModal();

    // 发送POST请求到后端API
    fetch('/admin/insert', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(userdata)
    })
    .then(response => response.json())
    .then(data => {
        if (data.success) {
            // 成功保存后更新页面
            alert('课程保存成功！');
            closeAddCourseModal();

            // 在表格中添加新课程
            const tableBody = document.querySelector(".table");
            const row = document.createElement("tr");
            row.innerHTML = `
                    <td>${userdata.username}</td>
                    <td>${userdata.password}</td>
                    <td>ROLE_STUDENT</td> 
                    <td>${new Date().toLocaleString()}</td>
                    <td><button class="btn btn-danger" data-id="${userdata.id}" onclick="showDeleteConfirmModal(this)">🗑 删除</button></td>
                `;
            tableBody.appendChild(row);

            // 更新删除按钮事件监听器
            addDeleteEventListeners();
        } else {
            alert('保存失败：' + data.message);
        }
    })
    .catch((error) => {
        console.error('Error:', error);
        alert('发生错误，请查看控制台日志！');
    });
});


function searchCourse() {
    // 获取用户输入的课程名
    const username = document.getElementById('username').value;

    // 向后端发送请求
    fetch(`/admin/students/bySno?sno=${encodeURIComponent(username)}`, {
        method: 'GET',
        headers: {
            'Content-Type': 'application/json'
        }
    })
        .then(response => response.json())  // 解析响应数据为 JSON 格式
        .then(data => {
            // 数据可视化 - 这里使用 table 替代列表形式展示数据
            const container = document.getElementById('table');
            container.innerHTML = '';  // 清空之前的结果

            if (data.length === 0) {
                container.innerText = '未找到相关课程信息';
                return;
            }

            // 创建表格来展示课程信息
            const table = document.createElement('table');
            table.style.width = '100%';
            table.setAttribute('border', '1'); // 添加边框

            // 表头
            let headerRow = table.insertRow();
            let headerCell1 = document.createElement('th');
            headerCell1.textContent = '课程名';
            let headerCell2 = document.createElement('th');
            headerCell2.textContent = '描述';
            headerRow.appendChild(headerCell1);
            headerRow.appendChild(headerCell2);

            // 表内容
            data.data.forEach(course => {
                const row = table.insertRow();
                const cell1 = row.insertCell();
                const cell2 = row.insertCell();
                cell1.textContent = course.name;
                cell2.textContent = course.description;
            });

            container.appendChild(table);
        })
        .catch(error => {
            console.error('Error:', error);
            alert('查询过程中发生错误，请查看控制台获取详细信息');
        });
}

// 打开新增学生模态框
function openAddStudentModal() {
  document.getElementById('addStudentModal').style.display = 'block';
}

// 关闭新增学生模态框
function closeAddStudentModal() {
  document.getElementById('addStudentModal').style.display = 'none';
}

// 处理新增学生表单提交
document.getElementById('studentForm').addEventListener('submit', function(e) {
  e.preventDefault();

  // 获取表单数据
  const formData = {
    user: {
      username: document.getElementById('studentUsername').value,
      password: document.getElementById('studentPassword').value,
      role: 'student'
    },
    student: {
      sno: parseInt(document.getElementById('studentSno').value),
      sname: document.getElementById('studentName').value,
      gender: document.getElementById('studentGender').value
    }
  };

  // 发送 POST 请求到后端 API
  fetch('http://localhost:8080/admin/insert', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(formData)
  })
  .then(response => response.text())
  .then(data => {
    alert(data);
    if (data === '注册成功') {
      closeAddStudentModal();
      // 刷新学生列表
      loadStudents();
    }
  })
  .catch(error => {
    console.error('创建学生出错:', error);
    alert('创建学生出错，请稍后重试');
  });
});

// 加载学生列表（示例函数，需根据实际情况实现）
function loadStudents() {
  // 实现加载学生列表的逻辑
}

